
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f0xx_hal.h"
#include "stdio.h"
#define REC_LENGTH  1
#define MAX_REC_LENGTH  1024
void Error_Handler(void);
#define KEY_WAKE_MCU_Pin GPIO_PIN_13
#define KEY_WAKE_MCU_GPIO_Port GPIOC
#define KEY_WAKE_MCU_EXTI_IRQn EXTI4_15_IRQn
#define MCU_POWKEY_Pin GPIO_PIN_4
#define MCU_POWKEY_GPIO_Port GPIOA
#define PSM_EINT3V3_Pin GPIO_PIN_5
#define PSM_EINT3V3_GPIO_Port GPIOA
#define MCU_RESET_Pin GPIO_PIN_6
#define MCU_RESET_GPIO_Port GPIOA
#define PW_EN_Pin GPIO_PIN_0
#define PW_EN_GPIO_Port GPIOB
#define MCU_RELY_IO_Pin GPIO_PIN_3
#define MCU_RELY_IO_GPIO_Port GPIOB
#define BUZZER_PW_EN_Pin GPIO_PIN_4
#define BUZZER_PW_EN_GPIO_Port GPIOB
#define MCU_LED0_Pin GPIO_PIN_8
#define MCU_LED0_GPIO_Port GPIOB
#define MCU_LED1_Pin GPIO_PIN_9
#define MCU_LED1_GPIO_Port GPIOB
#define MCU_NB_PW_Pin GPIO_PIN_6
#define MCU_NB_PW_GPIO_Port GPIOB
#define LED0_ON		HAL_GPIO_WritePin(MCU_LED0_GPIO_Port,MCU_LED0_Pin,GPIO_PIN_RESET)
#define LED0_OFF		HAL_GPIO_WritePin(MCU_LED0_GPIO_Port,MCU_LED0_Pin,GPIO_PIN_SET)
#define LED1_ON		HAL_GPIO_WritePin(MCU_LED1_GPIO_Port,MCU_LED1_Pin,GPIO_PIN_RESET)
#define LED1_OFF		HAL_GPIO_WritePin(MCU_LED1_GPIO_Port,MCU_LED1_Pin,GPIO_PIN_SET)
#define BC26_Reset_High  HAL_GPIO_WritePin(MCU_RESET_GPIO_Port,MCU_RESET_Pin,GPIO_PIN_SET)
#define BC26_Reset_Low  HAL_GPIO_WritePin(MCU_RESET_GPIO_Port,MCU_RESET_Pin,GPIO_PIN_RESET)
#define BC26_POWKEY_High  HAL_GPIO_WritePin(MCU_POWKEY_GPIO_Port,MCU_POWKEY_Pin,GPIO_PIN_SET)
#define BC26_POWKEY_Low  HAL_GPIO_WritePin(MCU_POWKEY_GPIO_Port,MCU_POWKEY_Pin,GPIO_PIN_RESET)
#define PSM_EINT3V3_High  HAL_GPIO_WritePin(PSM_EINT3V3_GPIO_Port,PSM_EINT3V3_Pin,GPIO_PIN_SET)
#define PSM_EINT3V3_Low  HAL_GPIO_WritePin(PSM_EINT3V3_GPIO_Port,PSM_EINT3V3_Pin,GPIO_PIN_RESET)
#define NB_PW_ON		HAL_GPIO_WritePin(MCU_NB_PW_GPIO_Port,MCU_NB_PW_Pin,GPIO_PIN_RESET)
#define NB_PW_OFF		HAL_GPIO_WritePin(MCU_NB_PW_GPIO_Port,MCU_NB_PW_Pin,GPIO_PIN_SET)
static FLASH_EraseInitTypeDef EraseInitStruct = {
	.TypeErase = FLASH_TYPEERASE_PAGES,
	.PageAddress = 0x08008000,
	.NbPages = 1
};
typedef struct
{
			uint16_t up_data;
			uint8_t	AlarmFlag;
			uint8_t	SignalStrength;
}
measure_value ;
extern measure_value MeasureData ;
#define IME3_CH1_Duty 800
#define IMEI_Len 15
#define ICCID_Len 20
extern uint8_t BC26_ICCID[ICCID_Len+1];
extern	uint8_t BC26_IMEI[IMEI_Len+1];
void Write_Config(void);
void Read_Config(void);
#ifdef __cplusplus
}
#endif
#endif